#include "Stack.h"

void iniciaPilha(Stack* pilha) {
    pilha->state = -1;
    pilha->next = NULL;
    strcpy(pilha->subMachine, "Vazia");
}

int vazia(Stack* pilha) {
    if(pilha->state == -1)
        return TRUE;
    else
        return FALSE;
}

void empilha (Stack** pilha, char* subMaquina, int estado){
    Stack* aux = (Stack*) malloc (sizeof(Stack));
    aux->next = *pilha;
    aux->state = estado;
    strcpy(aux->subMachine, subMaquina);
    *pilha = aux;
}


int desempilha(Stack** pilha, char* subMaquina){
    Stack* aux = (*pilha)->next;
    int estado = (*pilha)->state;
    strcpy(subMaquina, (*pilha)->subMachine);
    free(*pilha);
    *pilha = aux;
    return estado;
}
